package com.sdkj.recruit.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.sdkj.recruit.model.SmsCode;
import com.sdkj.recruit.model.User;


public interface IUserDao {

	/**
	 * 查询用户
	 * @return
	 */
	User querUser();

	/**
	 * 根据名称查询用户
	 * @param userName
	 * @return
	 */
	User queryUserByName(String userName);

	/**
	 * 保存用户
	 * @param user
	 */
	void saveUsers(User user);

	/**
	 * 删除用户
	 * @param userId
	 */
	void deleteUserById(String userId);

	/**
	 * 删除登陆信息
	 * @param userId
	 */
	void cleanUserLoginInfo(String userId);

	/**
	 * 更新登陆信息
	 * @param accessToken
	 * @param lastLoginTime
	 */
	void updateUserLoginInfo(String accessToken, Date lastLoginTime,long expireTime ,String userId);

	/**
	 * 根据userid 查看用户
	 * @param userId
	 * @return
	 */
	User queryUserById(String userId);

	/**
	 * 修改密码
	 * @param userId
	 * @param createNewpassword
	 */
	void updatePassword(String userId, String createNewpassword);

	/**
	 * 根据token 获取用户
	 * @param token
	 * @return
	 */
	User queryUserByToken(String token);

	
	void updateUserProperty(String userId, Map<String, Object> property);

	List<User> queryUserList(int pageNo, int pageSize, String keyWord);

	long queryAllUserCount(String keyWord);

	User queryUserByEmCode(String emCode);

	User queryUserByPhone(String mobile);

	void saveSmsInfo(SmsCode sms);

	SmsCode querySms(String mobile, int codeType);
}
